package com.transaction.manage.model.dto;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Table(name = "flow_info")
public class FlowInfo implements Serializable {
    @Id
    private Integer id;

    /**
     * 流程编码
     */
    @Column(name = "flow_code")
    private String flowCode;
    private String flowName;

    /**
     * 步骤编码
     */
    @Column(name = "step_code")
    private Integer stepCode;

    /**
     * 步骤名称
     */
    @Column(name = "step_name")
    private String stepName;

    /**
     * 包名
     */
    @Column(name = "package_name")
    private String packageName;

    /**
     * 类名
     */
    @Column(name = "class_name")
    private String className;

    /**
     * 方法名
     */
    @Column(name = "method_name")
    private String methodName;

    /**
     * 涉及到的文件类型
     */
    @Column(name = "ref_file_type")
    private String refFileType;
    private List<String> refFileTypeArr;

    private Date utime;

    private static final long serialVersionUID = 1L;

    /**
     * @return id
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取流程编码
     *
     * @return flow_code - 流程编码
     */
    public String getFlowCode() {
        return flowCode;
    }

    /**
     * 设置流程编码
     *
     * @param flowCode 流程编码
     */
    public void setFlowCode(String flowCode) {
        this.flowCode = flowCode;
    }


    public String getFlowName() {
        return flowName;
    }

    public void setFlowName(String flowName) {
        this.flowName = flowName;
    }

    /**
     * 获取步骤编码
     *
     * @return step_code - 步骤编码
     */
    public Integer getStepCode() {
        return stepCode;
    }

    /**
     * 设置步骤编码
     *
     * @param stepCode 步骤编码
     */
    public void setStepCode(Integer stepCode) {
        this.stepCode = stepCode;
    }

    /**
     * 获取步骤名称
     *
     * @return step_name - 步骤名称
     */
    public String getStepName() {
        return stepName;
    }

    /**
     * 设置步骤名称
     *
     * @param stepName 步骤名称
     */
    public void setStepName(String stepName) {
        this.stepName = stepName;
    }

    /**
     * 获取包名
     *
     * @return package_name - 包名
     */
    public String getPackageName() {
        return packageName;
    }

    /**
     * 设置包名
     *
     * @param packageName 包名
     */
    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }

    /**
     * 获取类名
     *
     * @return class_name - 类名
     */
    public String getClassName() {
        return className;
    }

    /**
     * 设置类名
     *
     * @param className 类名
     */
    public void setClassName(String className) {
        this.className = className;
    }

    /**
     * 获取方法名
     *
     * @return method_name - 方法名
     */
    public String getMethodName() {
        return methodName;
    }

    /**
     * 设置方法名
     *
     * @param methodName 方法名
     */
    public void setMethodName(String methodName) {
        this.methodName = methodName;
    }

    /**
     * 获取涉及到的文件类型
     *
     * @return ref_file_type - 涉及到的文件类型
     */
    public String getRefFileType() {
        return refFileType;
    }

    /**
     * 设置涉及到的文件类型
     *
     * @param refFileType 涉及到的文件类型
     */
    public void setRefFileType(String refFileType) {
        this.refFileType = refFileType;
    }

    public List<String> getRefFileTypeArr() {
        return refFileTypeArr;
    }

    public void setRefFileTypeArr(List<String> refFileTypeArr) {
        this.refFileTypeArr = refFileTypeArr;
    }

    /**
     * @return utime
     */
    public Date getUtime() {
        return utime;
    }

    /**
     * @param utime
     */
    public void setUtime(Date utime) {
        this.utime = utime;
    }

    public FlowInfo() {
    }

    public FlowInfo(String flowCode, Integer stepCode) {
        this.flowCode = flowCode;
        this.stepCode = stepCode;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", flowCode=").append(flowCode);
        sb.append(", stepCode=").append(stepCode);
        sb.append(", stepName=").append(stepName);
        sb.append(", packageName=").append(packageName);
        sb.append(", className=").append(className);
        sb.append(", methodName=").append(methodName);
        sb.append(", refFileType=").append(refFileType);
        sb.append(", utime=").append(utime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}